Many phases of modern electronic design are performed with computer aided design (CAD) tools or electronic design automation (EDA) systems. To design an integrated circuit, a designer first creates high level behavior descriptions of the IC device using a high-level hardware design language (HDL). Common examples of HDLs include Verilog and VHDL.
An EDA system typically receives the high level behavior descriptions of the IC device and translates this high-level design language into netlists of various levels of abstraction using a computer synthesis process. A netlist describes interconnections of nodes and components on the chip and includes information of circuit primitives such as transistors and diodes, their sizes and interconnections, for example.
An integrated circuit designer may uses a set of layout EDA application programs to create a physical integrated circuit design layout from a logical circuit design. The layout EDA application uses geometric shapes of different materials to create the various electrical components on an integrated circuit and to represent electronic and circuit IC components as geometric objects with varying shapes and sizes.
Verification is performed at several stages to ensure that the electronic circuit design will work for its intended purpose. After an integrated circuit designer has created an initial integrated circuit design, the integrated circuit designer then tests and optimizes the integrated circuit layout using a set of EDA testing and analysis tools. At the logical level, simulation and formal verification are used to test the IC design. At the physical implementation level, common testing and optimization steps include extraction, verification, and compaction. The steps of extraction and verification are performed to ensure that the integrated circuit layout will perform as desired. The test of extraction is the process of analyzing the geometric layout and material composition of an integrated circuit layout in order to “extract” the electrical characteristics of the designed integrated circuit layout. The step of verification uses the extracted electrical characteristics to analyze the circuit design using circuit analysis tools.
As the quantity of data in modern IC designs become larger and larger over time, it has become apparent that conventional EDA tools are unable to effectively and efficiently scale upwards to handle very large electronic designs, such as many modern microprocessor, SOC, and systems designs. For example, the ability of conventional verification tools to handle simulation or formal verification is incompatible with many modern IC designs being produced by electronics companies that are constantly increasing in complexity and number of transistors. The basic problem is that conventional simulation and formal verification tools are designed to handle much smaller sets of data than exists for modern designs. This problem is exacerbated for all EDA tools by greatly increased functionality and feature sets for modern IC chips as well as constantly improving IC manufacturing technologies that can create IC chips at ever-smaller feature sizes, which allows increasingly greater quantities of transistors and other objects to be placed within the same chip area.
Organizations that design very large circuits may attempt to address these problems by using simulation or formal verification only at certain specified levels of the design, and not the entire design, so that the quantity of data sought to be verified is within the appropriate range for conventional EDA tools. The problem with this approach is that the entirety of the design may not be adequately verified and it is ineffective for identifying all problems with the design. Moreover, this approach may result in design flaws being found much later in the design cycle and even after market/production release of the product. As is well known in industry, the cost of fixing a design problem tends to significantly increase the further along the product is on the design cycle.
One approach to address these problems is to create specialized “ad hoc” models of the design at different levels, e.g., using C-based model to represent RTL. In this approach, the ad hoc designs would be tested and verified along with the RTL. There are many problems with this alternate approach. For example, the alternate approach fails to provide a consistent relationship across different abstraction levels. In other words, this approach has no relationship between the different levels other than at a conceptual level. There is a very large gap between what is determined at one level versus what actually happens at another level. Because of this, this approach requires the verification and correction process at the different levels to be repeated over and over again, often without any assurance that the design problems at a given level are truly being identified.
Transaction based verification is another approach for attempting to address the same problems. With transaction based verification, low level signal activities are grouped together into common “transactions”. This is a notable attempt to act upon a circuit design at different levels of abstraction and is becoming more and more prevalent in the EDA product and technology space. The problem with conventional transaction based verification tools is that there is no guarantee of relationship between the different abstraction levels. In other words, there is no airtight guarantee that no errors identified at the transaction level will translate into no errors at the signal level, and vice versa. As a result, both existing transaction based verification tools and standards for electronic designs would need to be modified to comply with embodiments of the present invention.
The present invention addresses the above problems by providing an improved approach for designing and verifying electronic designs. In some embodiments, design and verification are performed using stepwise refinement techniques, which can also include or be referred to as “top-down” design verification. With the present stepwise refinement approach, the electronic design can be acted upon at different levels of abstraction, but with approximately the same level of resolution at each abstraction level. A strong relationship of consistency exists between the successive abstraction levels of the design. On account of this consistency, properties that are established or true at one level of the design remain true for all subsequent levels of abstraction of the design.
Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims. Both the foregoing general description and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the invention.